Sharing of presets for visual effects or other computer-implemented effects

ABSTRACT

This application describes a system and associated methods for enabling users of video editing, compositing, motion graphics, and other applications to easily store and retrieve presets, have presets modified for compatibility with other applications, share presets with each other, and search for shared presets. The users may utilize different applications that store presets according to different application-specific schemas. The system can automatically translate or conform presets from one application-specific schema to a neutral schema and from the neutral schema to another application-specific schema. This allows a user of one application to share his or her presets with users of different applications. Among other things, this cross-application sharing of presets allows the system implementor to create one user community (e.g., of users of different applications), rather than several individual ones (e.g., an individual user community for each different application). Other features of the system and associated methods are also described.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a divisional of U.S. patent application Ser. No.12/765,541 (now U.S. Pat. No. 8,412,729) filed Apr. 22, 2010, whichclaims the benefit of U.S. Provisional Application No. 61/171,657, filedApr. 22, 2009, the entirety of each of which is hereby incorporated byreference.

BACKGROUND

Applications for generating visual effects, such as video editing,compositing, and motion graphics applications, may use plug-ins toproduce certain effects. For example, GenArts Inc., of Cambridge, Mass.,provides plug-ins packages for several different applications forgenerating visual effects (called host applications). Some examples ofhost applications that GenArts plug-ins can be used with are: AdobeAfter Effects, Apple Final Cut Pro, Avid Media Composer, and AutodeskFlame. GenArts plug-ins are available in different versions depending onwhich host application they are compatible with.

Visual effects plug-ins can usually generate a multitude of possibleresults depending on how a user of the host application sets parametervalues and options within that plug-in. This flexibility gives users anopen-ended toolbox of new looks. Once a specific combination ofparameter values has been found, the user can instruct the hostapplication to save that combination as a “preset” on the user'scomputer. The user can load the preset again later and apply it todifferent film or video clips to achieve similar looks again.

Although plug-ins are generally provided for several different hostapplications, plug-in presets for different host applications aretypically not compatible with each other because they are in differenthost application-specific formats.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computer that may employ aspects of theinvention.

FIG. 2 is a block diagram illustrating a suitable system in whichaspects of the invention may operate in a networked computerenvironment.

FIG. 3 is a block diagram illustrating how two different groups of users(e.g., professional users and consumer users) can interact with aspectsof the invention.

FIG. 4 is a flow diagram illustrating a process for sharing a preset.

FIG. 5 is an example plug-in preset in an XML format.

FIG. 6 is a block diagram illustrating translations of presets betweenapplication schemas and a neutral schema and vice-versa.

FIG. 7 is a flow diagram illustrating a process for obtaining a sharedpreset.

FIG. 8 is a flow diagram illustrating a process for processing videousing effects created from shared presets.

DETAILED DESCRIPTION

The headings provided herein are for convenience only and do notnecessarily affect the scope or meaning of the claimed invention.

Overview

The inventors have recognized the need for a system that overcomes theabove problems, as well as one that provides additional benefits.Overall, the examples herein of some prior or related systems and theirassociated limitations are intended to be illustrative and notexclusive. Other limitations of existing or prior systems will becomeapparent to those of skill in the art.

This application describes systems (a “system”) and associated methodsfor enabling users of host applications and plug-ins and/or stand-aloneapplications to easily store and retrieve their presets, have themtranslated into other forms including those that can be used acrossdifferent host platforms, share their presets with each other and withother users, and search for shared presets, via a web portal. The webportal may be a publicly available web site on the Internet, a privatewebsite on a private network (e.g., an organization's intranet), or somecombination of the two. An implementor of the system can create acommunity of users who benefit from the ability to easily store,retrieve, and share their visual effects work with each other. Suchsharing amongst the community of users is possible even though the usersmay utilize normally-incompatible presets.

A preset includes data usable by an application to generate visualeffects for moving (e.g., digital video) or still images (e.g., digitalimages). Such data can include parameters and associated parametervalues, input requirements (for example, video/image source and/or maskinformation), and/or other data identifiers and associated data values.The data can also include data corresponding to an image, a video,and/or other digital asset to which the preset has been applied or canbe applied. A preset can also include descriptive metadata.

The users may use a variety of different host applications forgenerating visual effects that normally store plug-in presets in hostapplication-specific formats. Additionally or alternatively, the usersmay use stand-alone applications for generating visual effects that donot require the use of plug-ins, but instead generate visual effectsnatively (without plug-ins). For example, web applications, video gameapplications, embedded (e.g., in mobile devices) applications, and/orother stand-alone applications could provide effects generationnatively, without requiring use of plug-ins to produce visual effects.In such cases, the data used by stand-alone applications to producevideo effects may simply be referred to as presets. The phraseapplication, as used herein, is intended to include both applicationsthat use plug-ins to produce visual effects (host applications) andapplications that can produce visual effects without the use of plug-ins(stand-alone applications). Applications may be dedicated to generatingeffects (e.g., special-purpose video editing, compositing, and motiongraphics applications). Alternatively, applications may not be dedicatedto generating effects, but may include, in addition to othercapabilities, the ability to generate effects (e.g., perform videoediting, compositing and/or motion graphics functions).

The system augments the application preset storage mechanism withmethods for saving the presets in a network-accessible location suchthat the presets are accessible to multiple users. The system canautomatically translate or conform preset data from oneapplication-specific schema to a neutral schema, and from the neutralschema to another schema specific to one or more other applications.This automatic translation enables a user of one application forgenerating visual effects to share his or her presets with users ofdifferent applications for generating visual effects. Among otherthings, this cross-application sharing of presets allows the systemimplementor to create one user community (e.g., of users of differentapplications for generating visual effects), rather than severalindividual ones (e.g., an individual user community for each differentapplication for generating visual effects).

The user community may be generally divided into two groups: a firstgroup of users with access to host applications and associated plug-insand/or stand-alone applications, and a second group of users withoutaccess to such applications. For example, the first group may includeprofessional users (e.g., those users who perform video editing on aprofessional or semi-professional basis, such as special effects artistsusing existing host applications, future host applications, and/orstand-alone applications). Professional users generally have access totheir own host applications for generating visual effects and/orstand-alone applications for generating visual effects. The second groupmay include consumer users (e.g., those users who occasionally performvideo editing, such as home users or hobbyists, and/or users withconsumer-grade hardware and/or software such as video camcorders ormobile phones). Consumer users may or may not have access to hostapplications for generating visual effects and/or stand-aloneapplications for generating visual effects.

In some cases, the system may provide a set of features to the firstgroup of users (e.g., professional users), and a subset of thosefeatures to the second group of users (e.g., consumer users). Forexample, the system may allow only the first group of users to createand save presets. The system may not allow the second group of users tocreate and save presets, but instead only allow them to process videousing presets created and saved by the first group of users.Alternately, the system may provide the same features to both groups ofusers.

The preceding example of professional and consumer users, and how eachgroup may interact differently with the system, is used throughout thisapplication. However, those of skill in the art will understand thatdifferent types of users may interact with the system. Furthermore,those of skill in the art will understand that the differences betweenprofessional users and consumer users may not necessarily be meaningfuldistinctions in comprehending how the system can interact with differentusers. Rather, a meaningful distinction is that between those users withaccess to host applications and associated plug-ins and/or stand-aloneapplications (examples of which are generally professional users) andthose without such access (examples of which are generally consumerusers). Therefore, the system and associated methods are not limited tojust these two groups of users and how the users of each group mayinteract with the system.

The system also facilitates deriving revenue from the sharing of presetsand effects created from presets. For example, users can post presets tothe web portal that are for sale and/or available for licensing. Asanother example, an organization (e.g., a production studio) can providea library of presets that the organization has used to create videoeffects for a specific video production (e.g., a television show, amovie, etc.). Accordingly, the system facilitates an online marketplacewhere users can offer presets for purchase and/or license and users canpurchase and/or license presets.

Various embodiments of aspects of the invention will now be described.The following description provides specific details for a thoroughunderstanding and enabling description of these embodiments. One skilledin the art will understand, however, that aspects of the invention maybe practiced without many of these details. Additionally, somewell-known structures or functions may not be shown or described indetail, so as to avoid unnecessarily obscuring the relevant descriptionof the various embodiments.

The terminology used in the description presented below is intended tobe interpreted in its broadest reasonable manner, even though it isbeing used in conjunction with a detailed description of certainspecific embodiments of aspects of the invention. Certain terms may evenbe emphasized below; however, any terminology intended to be interpretedin any restricted manner will be overtly and specifically defined assuch in this Detailed Description section.

Suitable Computing Environments

FIG. 1 and the following discussion provide a brief, general descriptionof a suitable computing environment in which aspects of the inventioncan be implemented. Although not required, aspects and embodiments ofthe invention will be described in the general context ofcomputer-executable instructions, such as routines executed by ageneral-purpose computer, e.g., a server or personal computer. Thoseskilled in the relevant art will appreciate that aspects of theinvention can be practiced with other computer system configurations,including Internet appliances, hand-held devices, wearable computers,cellular or mobile phones, video recorders, cameras, multi-processorsystems, microprocessor-based or programmable consumer electronics,set-top boxes, network PCs, mini-computers, mainframe computers, and thelike. Aspects of the invention can be embodied in a special purposecomputer or data processor that is specifically programmed, configuredor constructed to perform one or more of the computer-executableinstructions explained in detail below. Indeed, the term “computer”, asused generally herein, refers to any of the above devices, as well asany data processor or any device capable of communicating with anetwork, including consumer electronic goods such as game devices,cameras, or other electronic devices having a processor and othercomponents, e.g., network communication circuitry.

Aspects of the invention can also be practiced in distributed computingenvironments, where tasks or modules are performed by remote processingdevices, which are linked through a communications network, such as aLocal Area Network (“LAN”), Wide Area Network (“WAN”) or the Internet.In a distributed computing environment, program modules or sub-routinesmay be located in both local and remote memory storage devices. Aspectsof the invention described below may be stored or distributed oncomputer-readable media, including magnetic and optically readable andremovable computer discs, stored as firmware in chips (e.g., EEPROMchips), as well as distributed electronically over the Internet or overother networks (including wireless networks). Those skilled in therelevant art will recognize that portions of aspects of the inventionmay reside on a server computer, while corresponding portions reside ona client computer. Data structures and transmission of data particularto aspects of the invention are also encompassed within the scope of theinvention.

Referring to FIG. 1, one embodiment of aspects of the invention employsa computer 100, such as a personal computer or workstation, having oneor more processors 101 coupled to one or more user input devices 102 anddata storage devices 104. The computer is also coupled to at least oneoutput device such as a display device 106 and one or more optionaladditional output devices 108 (e.g., printer, plotter, speakers, tactileor olfactory output devices, etc.). The computer may be coupled toexternal computers, such as via an optional network connection 110, awireless transceiver 112, or both.

The input devices 102 may include a keyboard and/or a pointing devicesuch as a mouse. Other input devices are possible such as a microphone,joystick, pen, game pad, scanner, digital camera, video camera, and thelike. The data storage devices 104 may include any type ofcomputer-readable media that can store data accessible by the computer100, such as magnetic hard and floppy disk drives, optical disk drives,magnetic cassettes, tape drives, flash memory cards, digital video disks(DVDs), Bernoulli cartridges, RAMs, ROMs, smart cards, etc. Indeed, anymedium for storing or transmitting computer-readable instructions anddata may be employed, including a connection port to or node on anetwork such as a local area network (LAN), wide area network (WAN) orthe Internet (not shown in FIG. 1).

Aspects of the invention may be practiced in a variety of othercomputing environments. For example, referring to FIG. 2, a distributedcomputing environment with a web interface includes one or more usercomputers 202 in a system 200, each of which includes a browser programmodule 204 that permits the computer to access and exchange data withthe computer network 206, including web sites within the World Wide Webportion of the Internet, within an intranet, and/or within other publicand/or private networks. For example, an organization (e.g., aproduction studio) may use the system 200 in a private, non-public,environment, such as a private intranet not having any connections tothe public Internet. Organizations (e.g., production studios) mayutilize such a private system 200 to safeguard proprietary information(e.g., movies in various stages of production) and prevent release ofsuch information to the general public. The user computers 202 may besubstantially similar to the computer described above with respect toFIG. 1. User computers may include other program modules such as anoperating system, one or more video editing, compositing and/or motiongraphics applications, one or more application programs (e.g., wordprocessing or spread sheet applications), and the like. The computersmay be general-purpose devices that can be programmed to run varioustypes of applications, or they may be single-purpose devices optimizedor limited to a particular function or class of functions. Moreimportantly, while shown with web browsers, any application program forproviding a graphical user interface to users may be employed, asdescribed in detail herein; the use of a web browser and web interfaceare only used as a familiar example here.

At least one server computer 208, coupled to the computer network 206,performs much or all of the functions for receiving, routing and storingof electronic messages, such as machine-readable data, web pages, audiosignals, and electronic images. While the Internet is described in someexamples herein, a private network, such as an intranet, may indeed beused in some applications. The network may have a client-serverarchitecture, in which a computer is dedicated to serving other clientcomputers, or it may have other architectures such as a peer-to-peer, inwhich one or more computers serve simultaneously as servers and clients.A data store (shown as a single database 210; the data store may alsoinclude multiple databases), coupled to the server computer(s), storesmuch of the web pages and content exchanged between the user computers.The server computer(s), including the database(s), may employ securitymeasures to inhibit malicious attacks on the system, and to preserveintegrity of the messages and data stored therein (e.g., firewallsystems, Secure Socket Layers (SSL), password protection schemes,encryption, and the like).

The server computer 208 may include a server engine 212, a web pagemanagement component 214, a content management component 216 and adatabase management component 218. The server engine 212 performs basicprocessing and operating system level tasks. The web page managementcomponent 214 handles creation and display or routing of web pages.Users may access the server computer 208 by means of a URL associatedtherewith. The content management component 216 handles most of thefunctions in the embodiments described herein. The database managementcomponent 218 includes storage and retrieval tasks with respect to thedatabase, queries to the database 210, and storage of data.

In some embodiments of the invention, the server computer 208 may infact be the same computer as the user computer 202, with one or moreprocesses or libraries on the user computer 202 embodying the servicesand tasks described above which are usually provided by the servercomputer 208. In these cases a separate server computer 208 may not berequired.

System Interaction for Users with Applications and Users withoutApplications

FIG. 3 is a block diagram 300 illustrating how two different groups ofusers—a first group of users with access to host applications andassociated plug-ins and/or stand-alone applications, and a second groupof users without access to such applications—can interact with thesystem. A user in the first group can create presets using his or herhost application and plug-ins and/or stand-alone application, share themwith the system, and use presets created by other users in the firstgroup. A user in the second group generally does not create and/or sharepresets. Rather, such a user generally only uses presets created byusers in the first group. Users in the second group typically cannotmodify created presets, although the system may provide some limitedcustomization capabilities to such users, for instance allowing them tochoose the amount or brightness of an effect to be applied, or to chooseamong closely related or slightly modified versions of one or morepresets. Professional users are used as an example of the first group ofusers, and consumer users are used as an example of the second group. Asnoted before, however, the system distinguishes between those users withaccess to host applications and associated plug-ins and/or stand-aloneapplications, and those without such access, not necessarily betweenprofessionals and consumers. Accordingly, the aspects of the systemdescribed with reference to FIG. 3 are not limited to just these twotypes of users.

As depicted in FIG. 3, several professional users 312 a, 312 b, and 312c may comprise a group 310 of professional users. At least some of theprofessional users 312 may be affiliated with each other (such asindividuals working for a single special effects studio), or theprofessional users 312 may not share any affiliation. Each of theprofessional users 312 may use a different host application orstand-alone application for video editing (indicated by Host A, Host B,Host C, respectively). The professional users 312 create presets (e.g.,presets for plug-ins for host applications) and upload them to a webserver 330 that provides a specific web interface 340 for theprofessionals. The professional web interface 340 allows for browsing,editing, searching for presets, bidding on presets, and/or otherfeatures. The web server 330 also automatically translates presetsbetween different host application schemas (this translation isdescribed in more detail with reference to, e.g., FIGS. 4 and 6). Theweb server 330 also contains a social networking component which mayinclude discussion forums, messaging, voting and ranking, notifications,tagging, comments, moderation, video markup, and/or other features.

An additional benefit of the collection of presets saved byprofessionals is that they can be converted into stand-alone effects andoffered to consumers for web-hosted processing of uploaded videomaterial. The web server 330 converts presets saved by professionalusers 312 to effects that consumer users 322 can apply. For example, aconsumer may use a stand-alone application such as a web application, avideo application, and/or an application provided by a mobile device(e.g., mobile phone, digital camera, etc.) to apply effects to video.The consumer users 322 (shown individually as consumer users 322 a and322 b) interact with the system using a consumer web interface 350provided by the web server 330. Consumer users 322 may comprise a group320 (e.g., a group of friends or acquaintances). The consumer webinterface 345 allows consumer users 322 to browse and search foreffects. Therefore, a consumer user 322 without a host application orplug-in or stand-alone application can still browse available effectsusing the consumer web interface 350. The consumer web interface 350includes the searching and social networking features provided by theprofessional web interface 340. Web hosted processing of video usingshared effects is described in more detail with reference to, e.g., FIG.8.

Sharing Presets

As described herein, the system can provide a web portal that enablesusers to easily store and retrieve their presets, have them translatedinto or conformed to other schemas, share their presets with each otherand with other users, and search for shared presets. Presets for singleplug-ins can be shared, and combinations of several plug-ins togetherwith their specific connections and settings can also be shared asgrouped presets. This allows more complex custom effects to also beprovided to users. The system enables a user to create a library, orportfolio, of presets that the user can utilize for current and futureprojects. The system also enables a user to share presets in the user'slibrary with other users. For example, a user may choose to share his orher plug-in presets with the general public (by, e.g., making themavailable on the Internet), with other users affiliated with anorganization with which the user is associated (e.g., a productionstudio that produces movies, television shows, and/or other forms ofvideo), and/or with users associated with a subset of the organization(e.g., a group of users within a production studio responsible for asingle movie, or a single television series).

The presets can be shared by saving to and loading from the web server330 that users have access to. For example, the web server 330 mayprovide a public website on the public Internet, a private website on aprivate network (e.g., an organization's intranet), or some combinationof the two. When the presets are uploaded to the web server 330, theycan be stored either as files (or other data objects) or in a database(e.g., the database 210), which can contain the preset data andassociated metadata. The data store stores a collection of presetsprovided by multiple users and accessible to multiple users. Presetmetadata can include information such as author, description, project,company, dates, popularity, comments, votes, tags, folders, cost if any,and security and availability information. The preset can be uploaded tothe web server 330 along with an optional thumbnail image extracted fromthe current frame of the current video, or any other frame or sequenceof frames of the user's choosing.

FIG. 4 is a flow diagram illustrating a process 400 for sharing apreset. The process 400 begins at step 405, where a request to share apreset is received. For example, a video editing application (or otherapplication) can receive a request from a user of the application toshare the preset, by, e.g., saving the preset to the web server 330. Theapplication can provide an interface that allows the preset author toprovide information, such as a location on the web server 330 where thepreset is to be stored, access control information for the preset,metadata for the preset, and/or other information. For example, aplug-in for a host video editing application can include a browser(e.g., a browser based on WebKit or other embeddable browser) to allowthe user to upload or download presets while remaining within theplug-in user interface of the host application. The user could press a“Save Preset” button (or a “Manage Presets” button, and then a “Save”button), which could bring up the browser interface so that the user canselect the appropriate options, such as author and project name, as wellas a location on the web server 330 to save the preset to. A browsercould also be included in stand-alone applications. Additionally oralternatively, the user could use a stand-alone browser (e.g., aMicrosoft Internet Explorer, Mozilla Firefox, Google Chrome, AppleSafari, etc. browser) to upload presets.

The process continues at step 410, where metadata for the preset isreceived. For example, when uploading a preset, the author can specifyinformation about it such as the author's name, company, effectdescription and category, the project (e.g., movie, television show,etc.) it was used for and the price (e.g., for sale and/or licensingpurposes). At step 415, access control information for the preset isreceived. The desired amount of security can be selected by the author:the preset can be private (e.g., for the author's sole use), shared witha group such as a company (e.g., a group 310), with multiple friends, orwith a specific user group (e.g., a group 320). Additionally oralternatively, the user can specify a hierarchy of access to presets.For example, in an organization implementing the system in a privatenetwork, one or more individuals (e.g., studio heads, producers, etc.)may have complete access (e.g., read, write, delete, create, etc.) toall the presets in the organization's preset library. Other individuals(e.g., group leaders) may only have complete access to a subset of thepreset library corresponding to those individuals (e.g., to all presetscreated by individuals in the group), and read access to the remainderof the preset library. Still other individuals (e.g., special effectsartists) may have complete access to only presets they create, and reador no access to other presets. Additionally or alternatively, presetscan be shared with the general public. These are merely examples of howaccess to presets may be structured, and those of skill in the art willunderstand that other techniques may be used. In addition, someparameters (e.g., of the associated plug-in) can be recommended formaking appropriate minor adjustments to the current settings.

At step 420, the host application and/or plug-in (or stand-aloneapplication) creates a set of data containing the plug-in's parameters,parameter values, and/or other inputs and values for the inputs, andadditional metadata, in a common, extensible format. For example, theapplication may serialize the preset to a markup language such asExtensible Markup Language (XML). This data and metadata is uploaded tothe website where it can be translated into or conformed to a neutralschema, alternatively referred to as a neutral or generic data structuredefinition, and stored. When the preset is uploaded to the web server330, a thumbnail image and/or video can also be included that shows anexample of what the corresponding effect looks like when applied to theauthor's video material. The data can be transferred between users andthe web server 330 in XML or in another data transfer language, but maybe stored in other machine-readable forms in the data store.Additionally or alternatively, other data formats may be used totransfer data to and from the web server 330 and to store data in thedata store.

FIG. 5 is an example preset 500 in an XML format. The preset is for aplug-in named “S_LensFlare,” as indicated by reference character 505.The preset includes metadata 505 and data 510. The metadata 505 includesinformation such as information about the associated plug-in and itsvendor, information about the host application, and information aboutthe author and a corresponding project. The system may use the metadata505 for various purposes, such as for attributing an author of theplug-in preset on the web server 330, for pricing the plug-in preset forsale and/or licensing purposes, and/or for compensating the author forothers' use of the plug-in preset. The system may also use the metadata505 for purposes of allowing users to search for plug-in presets. Thedata 510 includes information such as parameter names and values anddata representing a thumbnail image extracted from a frame of video towhich the preset may be applied or has been applied.

Returning to FIG. 4, at step 425 the application transfers the XML fileto the web server 330. At step 430, the system determines the originalschema of the preset. For example, the system can determine the originalschema by analyzing metadata (e.g., the metadata 505) included in theXML file. At step 435 the system automatically modifies the preset totranslate the preset into or conform the preset to the neutral schema.The neutral schema can be non-specific (not specific to any particularapplication for generating effects). This translation/conformation isdescribed in more detail with reference to e.g., FIG. 6.

Auto-Translation of Presets/Auto-Modification of Presets to Conform toDifferent Schemas

An application typically requires a preset to be structured according toa certain schema. A schema provides how a preset should be structured inorder for the preset to be usable by an application. The schema maydefine the required parameters and their order, constraints forparameter values, information regarding input requirements, otherrequired data identifiers and associated data values, and/or requiredmetadata. For example, the application may require that the presetinclude certain parameters and/or that the parameters be ordered in acertain way. As another example, the application may require that presetparameters be named according to a certain convention. As anotherexample, the application may require that parameters use a certainmeasurement system, that parameter values are within a certain range,and/or that parameter values have a certain type. A schema may bespecific to one or more applications (an application-specific schema) ora schema may be non-specific to any applications. The neutral schemadescribed herein is an example of a non-specific schema. A schema may bealternatively referred to as a data structure definition.

Although a preset may be structured according to a certain schemaspecific to an application, the preset may not be usable by anotherapplication that requires presets to be structured according to anotherschema. For example, a plug-in on one host application may havedifferent parameters and/or different interpretations for parametersthan a corresponding plug-in on another host application or stand-aloneapplication. For example, a plug-in on one host application may specifya parameter value from a range of values such as 1-100. The same plug-inon another host application may specify, for the same parameter, a valuefrom a range of values such as 1-10. As another example, a plug-in forone host application may require that certain parameters utilize an x-ycoordinate system measured in pixels, whereas the same plug-in foranother host application may require that the same parameters utilize anx-y coordinate measured in picas. As another example, a plug-in for onehost application may require certain parameters and parameter valuesthat are not required by the same plug-in for another host application.

The system automatically provides for translation of these schemadifferences such that a preset usable by a first application andconforming to a first schema associated with the first application canbe modified to conform to a second schema associated with a secondapplication. The translation allows the preset to become usable by thesecond application. In some cases, the system automatically modifiespresets structured according to application-specific schemas such thatthe preset conforms to a common and extensible neutral schema. Thesystem can then automatically modify the preset (after the preset wasconformed to the neutral schema) to conform the preset to otherapplication-specific schemas. Among other things, translation acrossdifferent application schemas allows a plug-in running on any hostapplication to share preset data with a corresponding plug-in on anyother host application and/or stand-alone application.

FIG. 6 is a block diagram 600 illustrating translation of orconformation of presets having application-specific schemas to a neutralschema and vice-versa. Users 612 (shown individually as users 612 a-f)may use plug-ins that utilize presets in different schemas (shownindividually as schemas 620 a-f). For example, user 612 a utilizes AppleFinal Cut Pro, which uses presets having an FXPlug Schema 620 a. Asanother example, user 612 b utilizes Adobe After Effects, which usespresets having an AE Schema 620 b. As another example, a user 612 futilizes another application (e.g., a stand-alone application such as aweb application, video game, etc.) which uses presets having a schema620 f. (The XML file illustrated in FIG. 5 includes data structuredaccording to a schema that corresponds to an Adobe After Effects plug-inpreset.) In order for the Apple Final Cut Pro user 612 f to share his orher presets with the Adobe After Effects user 612 b and vice-versa,each's respective presets need to be translated into or conformed to theschema that the other application requires presets to have. Accordingly,in order to share presets between users 612 who utilize differentapplications, presets saved in one application-specific schema 620 needto be able to be translated into or conformed to otherapplication-specific schemas 620.

This can be done by translating or conforming the application-specificschemas 620 into a Neutral Schema 610. This translation can be performedat the web server 330 or at another computing device 630 (e.g., at thecomputing devices of the users 612). Once one application-specificschema 620 has been translated into or conformed to the Neutral Schema610, it can be translated or conformed into any otherapplication-specific schema 620 (or back to the originalapplication-specific schema 420). Among other things, this enables theApple Final Cut Pro user 612 a to share its presets with the Adobe AfterEffects User 612 b, or with any other user 612.

Translation or conformation of a preset can involve variousmodifications to the preset. One modification can be that names ofparameters should be changed. For example, a preset according to acertain schema may have a parameter name of “width,” but another schemamay require the parameter to be named “radius.” The system would modifythe parameter name to conform to the other schema. Another modificationcan be that parameter values should be changed. For example, a presetaccording to one application's schema may require that a parameter named“intensity” have values in a range of 1-10 and have an integer datatype. Another application's schema may require that the values for the“intensity” parameter be given in percent and have a floating-point datatype. The system would modify the parameter value and data type toconform to the other schema.

Another modification can be that parameters should be reordered. Forexample, an application may expect preset parameters to be in a certainorder, and another application may expect preset parameters to be in adifferent order. The system would modify the preset to reorder thepreset parameters to conform to the other schema. Another modificationcan be that parameters should be added to or removed from a presetaccording to a first schema to conform the preset to a second schema.The system would add or remove parameters to conform the preset to thesecond schema. As an alternative or in addition to these examples, thesystem may make other modifications to a preset to translate the presetinto or conform the preset to a schema. Accordingly, modifications topresets are not limited to the modifications given herein.

The system can use various techniques to modify a preset. For example,the system may compare the preset to a schema definition data structureto determine how to modify the preset to conform the preset to theschema. The schema definition data structure can be stored in a datastore and loaded from the data store. Additionally or alternatively, theschema definition data structure can be maintained in softwarecomponents. The system may iterate through preset data and metadataitems, compare each data and metadata item to the correspondingdefinition in the schema definition data structure, and where necessary,modify each data and metadata item to conform the preset to the schema.The system may also add or remove data and metadata items as necessaryto conform the preset to the schema. The system may then store themodified preset data and metadata. Those of skill in the art willunderstand that the system can use other techniques to modify a presetto conform the preset to a schema.

This translation or conformation can be automatically performed when thecomputing device 630 receives a preset having the application-specificschema 620 from the user 612. Additionally or alternatively, thecomputing device 630 can receive the preset having theapplication-specific schema 620 and save it as received. When the presetis requested by another user 612, the computing device 630 can thentranslate it into or conform it to the Neutral Schema 610, and then intothe necessary application-specific schema 620. Alternatively, if a userof the same application requests the preset, the computing device 630may not need to translate it into or conform it to the Neutral Schema610, and can simply provide the preset to the user as it was saved.Additionally or alternatively, the users 612 can send the preset data inan application-specific format to the computing device 630. Thecomputing device 630 can then store the preset data, and translate thepreset data into or conform it to other application-specific formats asnecessary (such as by translating it into or conforming it to anon-application-specific format, and then to anotherapplication-specific format, or by translating it or conforming itdirectly into another application-specific format). The system can alsosupport users of applications and application-specific schemas otherthan those illustrated in FIG. 6.

In some embodiments, presets are modified in a batch process (e.g.,multiple presets are modified to conform to the neutral schema in abatch after the web server 330 receives a certain number of presets orat a scheduled time). In some embodiments, the preset is modified upondemand, e.g., when a request is made for the preset that requires aschema other than the original schema the preset had when it wasreceived. Returning to FIG. 4, the process continues at step 440 wherethe XML file and the modified preset are stored (e.g., on the databaseor on a file server). The process 400 then concludes.

Accessing Shared Presets

Users can browse the collection of presets that have been saved bythemselves and others. Website capabilities can allow searching forpresets based on author, company, project, category, specific plug-in,application, etc. Social networking features can also be provided suchas tagging, voting, and discussions of the various presets available,their authors, and typical uses. Presets can be automatically taggedwith the specific plug-in name and/or specific application name that wasused to create them. The system can also support users' ability tocreate free-form tags for presets. The system can also usereputation-based tagging and filtering to provide added value to users.Tag auto-completion is another way to encourage uniformity, but theability to use tags in previously unforeseen ways should be preserved.

FIG. 7 is a flow diagram illustrating a process 700 for obtaining ashared preset from the collection of presets stored in the data store.The process 700 begins at step 705 where the system receives a searchquery for presets. For example, the user could utilize the plug-in userinterface of the host application to browse or search presets based onone or more conditions such as popularity, project, cost, or tags. Asanother example, the user could utilize a stand-alone browser to searchfor and access presets. At step 710 the presets that satisfy the searchquery are determined. At step 715 the system provides a listing of thepresets that satisfy the search query to the user. The presets may beviewed with the original thumbnail images or, at the user's choice, withany single frame or clip composed of frames of the user's choice, whichcould be temporarily uploaded to the server to produce the thumbnails.

At step 720 the system receives a request to access a preset from theuser. At step 725 the system determines whether the user is allowed toaccess the preset. The system may utilize access control mechanisms asdescribed herein to determine if the user is permitted to access thepreset. If the user is not permitted to access the preset, at step 755the system denies the user access to the preset and the process 700concludes.

If the user is permitted to access the preset, the process 700 continuesat step 730, where the system determines the schema required by therequestor. At step 735 the system determines whether the requestorschema is different from the original schema of the preset. Thisdetermination may be made in various ways. For example, preset metadataindicating an application (e.g., a plug-in and host application or astand-alone application) can be compared with an application specifiedin the request to determine if the requestor schema is different fromthe original schema. As another example, preset parameter names and/orother inputs can be analyzed to determine if the requestor schema isdifferent from the original schema.

If the requestor schema is different from the original schema, then atstep 740 the system modifies the preset to conform the preset to therequester schema. Before modification the preset may have been in theoriginal schema or the neutral schema. At step 745 the system creates anXML file that contains the preset data and metadata structured accordingto the requestor schema. At step 750 the system transfers the XML fileto the requestor.

However, if the requestor schema is identical to the original schema,the system can provide the XML file corresponding to the original schemato the requestor. The XML file corresponding to the original schema canbe used based on the assumption that the requestor can utilize thepreset data and metadata in the XML file without modification (or withminor modifications). If the requestor schema is identical to theoriginal schema, the process continues at step 760 where the systemaccess the XML file corresponding to the original schema. The processthen continues at step 750, where the system transfers the XML file tothe requestor. The process 700 then concludes.

The user's application can update the effect plug-in on the user's localmachine (or an existing preset and/or application) according to thepreset data, and that effect can be applied to the video material theuser is currently working on or the video material of the user'schoosing. In some embodiments, the plug-in or the application utilizesthe XML file natively (e.g., the plug-in or the applicationde-serializes the XML file to obtain the preset data and metadata). Insome embodiments, the plug-in or the application converts the XML fileinto another data structure or object and loads the data structure intothe plug-in or the application.

Hosted Processing of Video Using Shared Presets

As described with reference to, e.g., FIG. 3, presets can be convertedinto stand-alone effects and used to process uploaded video material.FIG. 8 is a flow diagram illustrating a process 800 for processing videousing effects created from shared presets. The process 800 begins atstep 805 where the system creates effects from presets that have beenshared and are part of the collection of presets in the data store. Thesystem can create effects by applying one or more presets to a sampledigital video. In some embodiments, the system applies one or morepresets according to their original schemas to the sample digital video.In some embodiments, the system applies one or more presets according tothe neutral schema to the sample digital video.

At step 810, the system receives a search query for effects. Forexample, the user can utilize a stand-alone browser to search for andaccess effects. At step 815 the system determines the effects thatsatisfy the search query. At step 820 the system provides a listing ofthe effects that satisfy the search query to the user. The user can viewthe effects and select an effect to apply to the user's video.

At step 825 the system receives a request to access an effect from theuser. At step 830 the system determines whether the user is allowed toaccess the effect. Access control mechanisms as described herein may beused to determine if the user is permitted to access the effect. If theuser is not permitted to access the preset, at step 855 the user isdenied access and the process 800 concludes.

At step 835 the system receives video to which the effect is to beapplied. For example, the user can upload video to the web server 330.The user can upload video from their computer, phone camera or fromanother source such as other websites (e.g., YouTube, Vimeo, Hulu,etc.). At step 840 one or more modifications to the effect are received.For example, in some embodiments, the user can select from a wide rangeof visual effects to apply to their video and make minor adjustmentsusing parameters specified by the original author (e.g., a professionaluser 312). The system may allow the user to modify the amount orstrength of the effect to be applied, to apply it to only certainelements, regions, or time ranges of the video, or to select amongvarious preselected and/or random variations of the original effect.

At step 840, the system processes the video using one or more effectsselected by the user. For example, the system can use its own customapplication (e.g., an application that provides functionality similar tothat of host applications such as those described herein) that comprisespart of the web server 330 to process frames of video using a selectedpreset and its associated plug-in. The user can then download theprocessed video. For example, the user can download the result back tohis or her local machine, or send it directly to a video hosting website(e.g., YouTube, Vimeo, Hulu, etc.), and/or to other destinations (e.g.,Internet-enabled television, video delivered to a set-top box and/ordigital video recorder, etc.). In some cases, the system applicationalso provides editing functionality, so that users (e.g., consumer users322) can edit video and add effects to it using a single webapplication. In some cases, the web server 330 may provide video hostingservices to users so that the processed video is immediately viewable byother users as well as other people browsing the web site.

As an alternative to having the web server 330 process the video, a usercan install an application to process effects on their local machine,which may be a computer or any programmable device such as a mobilephone, camera, or video recorder. This could save the user the time ofuploading and downloading the video to the web server 330. The usercould download specific effects (preset data) to process video on theirown machine or device. The application could be a stand-aloneapplication with a different consumer-focused UI (for example, astand-alone application that may not include a plug-in for a hostapplication).

Additionally or alternatively, a combination of local and hostedrendering could be used. For example, a thumbnail image could berendered on the machine or device of the user to give faster feedbackwith low resolution images (e.g., for a device with limited memory orprocessing speed). Then, once the effect has been set up, a fullresolution version could be processed on the web server 330. After step840, the process 800 then concludes.

Security

Uploads and downloads can be secured with SSL. Security on the servercan be done with standard mechanisms. It is also possible to confirm auser's license status during the transaction to prevent misuse of thesystem or to enable advanced functionality. License status might includea license to use the system itself, a license to use a host application,and/or a license to use plug-ins (for example, Sapphire or other GenArtsproducts), as appropriate.

In order to make a preset available only to selected users or groups,the author can require that a password be entered to access it. Othersecurity techniques known to those of skill in the art may also be usedto control access to presets.

Deriving Revenue from Sharing Presets and Effects

For users without access to applications (e.g., consumer users), thereare several revenue models. A first model is that the presets could beoffered for free in order to help build community and a high trafficsite more quickly. A second model is that the presets could be offeredfor free with advertising either on the site or embedded in theprocessed video. If the system implementor creates a high traffic site,advertising revenue may help generate revenue without slowing down usersby charging them directly. A third model is that the system implementorcharges a subscription, tiered by amount of use. The system implementormay still offer a free service up to a certain amount of use, so userscan easily get started. After that they could be charged a monthly fee,with different service levels offered, for example for occasional andfrequent users.

Additionally or alternatively, access to presets could be structuredinto tiers based on factors other than use. For example, presets couldbe tiered or otherwise categorized based upon an assigned value (e.g.,asking price). The system implementor could charge users a fee foraccess to a first tier of presets, another fee for access to the firstand second tiers of presets, and another fee for access to all threetiers of presets.

Additionally or alternatively, the system implementor could provideaccess to presets based upon contribution to the user community. Forexample, a user that contributes a certain number of presets may beprovided with access to presets provided by other users. As anotherexample, a user that provides reviews of presets and/or assists otherusers in the community may be given access to other user's presets. Asanother example, a user that provides a highly rated and/or highlyranked preset may be rewarded with access to additional presets. Thesystem implementor may also use other techniques of rewarding users toencourage participation in the user community and thereby provide arewarding user experience.

For users with host applications and/or stand-alone applications (e.g.,professional users), the system implementor can make the collaborationservice free when the users purchase or license another product such asan upgrade to a next major released version of a plug-in package (or,for example, when an organization purchases a site license to use aplug-in package, such as a site license to use GenArts' plug-inpackages). Alternatively or additionally, users may be compensated forsuccessful effects that they create and contribute, for example with aroyalty agreement. For example, if an author creates an effect thatbecomes widely known and sought after by other users, the author couldbe compensated for each use of the effect by other users.

The system implementor could also use other pricing models. For example,the system implementor could charge a one time fee for perpetual use fora single effect, (e.g., similar to the pricing model for iTunes songs).The system implementor could charge for each use of individual effects,or per use of collections of effects. Tiered pricing may also beemployed: “premium” subscription levels could enable more features andfunctionality such as high definition resolutions, reduced compression,increased bit depth, faster processing time, dedicated upload/downloadbandwidth, or other features. Alternatively or additionally, the systemmay tie download limits to uploads, to encourage sharing. Alternativelyor additionally, the system may create a third-party market by allowingpeople to charge for presets. The system can require a consideration(e.g., money, viewing an advertisement, payment of a licensing fee, asubscription, etc.) from the user in order to allow the user to access apreset.

An option for privately hosted servers may also be employed. A facilitycould purchase a turn-key version which could enable sharing only withinthat facility. For example, a special effects studio could use thesystem to share presets amongst individuals employed by the studio,amongst individuals involved in producing a certain video production(e.g., television show, movie, etc.), or between the individualsassociated with multiple production studios.

Additional Services Offered to Users

The system may offer users at least temporary video storage. The systemmay also offer longer term video storage (e.g., permanent orsemi-permanent video storage). The system implementor could also enterinto partnerships with other entities that could provide video storageto users. For example the system implementor could partner with videohosting websites (e.g., YouTube, Vimeo, Hulu, etc.), by which the videohosting websites could host the videos and provide links to and from theediting and effects solutions provided by the system.

The system may also offer web-hosted editing functionality so that userscan edit and add effects at the same time. Consumers may be able to usejust a smart phone or netbook to view, edit and apply effects to theirvideos.

CONCLUSION

In general, the detailed description of embodiments of aspects of theinvention is not intended to be exhaustive or to limit the invention tothe precise form disclosed above. While specific embodiments of, andexamples for, aspects of the invention are described above forillustrative purposes, various equivalent modifications are possiblewithin the scope of the invention, as those skilled in the relevant artwill recognize. For example, while processes or blocks are presented ina given order, alternative embodiments may perform routines havingsteps, or employ systems having blocks, in a different order, and someprocesses or blocks may be deleted, moved, added, subdivided, combined,and/or modified. Each of these processes or blocks may be implemented ina variety of different ways. Also, while processes or blocks are attimes shown as being performed in series, these processes or blocks mayinstead be performed in parallel, or may be performed at differenttimes.

Aspects of the invention may be stored or distributed oncomputer-readable data storage media, including magnetically oroptically readable computer discs, hard-wired or preprogrammed chips(e.g., EEPROM semiconductor chips), nanotechnology memory, biologicalmemory, or other computer-readable data storage media. Indeed, computerimplemented instructions, data structures, screen displays, and otherdata under aspects of the invention may be distributed over the Internetor over other networks (including wireless networks), on a propagatedsignal on a propagation medium (e.g., an electromagnetic wave(s), asound wave, etc.) over a period of time, or they may be provided on anyanalog or digital network (packet switched, circuit switched, or otherscheme). Those skilled in the relevant art will recognize that portionsof aspects of the invention reside on a server computer, whilecorresponding portions reside on a client computer such as a mobile orportable device, and thus, while certain hardware platforms aredescribed herein, aspects of the invention are equally applicable tonodes on a network.

The teachings of aspects of the invention provided herein can be appliedto other systems, not necessarily the system described herein. Theelements and acts of the various embodiments described herein can becombined to provide further embodiments.

Any patents, applications and other references, including any that maybe listed in accompanying filing papers, are incorporated herein byreference. Aspects of the invention can be modified, if necessary, toemploy the systems, functions, and concepts of the various referencesdescribed above to provide yet further embodiments of aspects of theinvention.

These and other changes can be made to aspects of the invention in lightof the above Detailed Description. While the above description detailscertain embodiments of aspects of the invention and describes the bestmode contemplated, no matter how detailed the above appears in text,aspects of the invention can be practiced in many ways. For example,although sharing of presets has been described in the context of videoediting, compositing, motion graphics, and effects generation, thetechniques described herein are equally applicable to other types ofdigital assets, such as digital images, digital sound files, digitalanimation files, other digital multimedia files, and other types ofdigital assets or digital content. Accordingly, the techniques describedherein may be utilized to modify other types of digital assets, digitalcontent, or human perceptible content (content that a human can perceivewhich may be in other than digital form but was once in digital form).Various types of computing devices may store presets, and such devicesmay apply presets to generate effects to digital assets. As an example,a camera may store a preset used to create a glow effect andautomatically apply the preset to a captured image to create the gloweffect in response recognizing that the captured image includes a face.There may be other uses of the techniques described herein.

Details of aspects of the invention may vary considerably in itsimplementation details, while still being encompassed by aspects of theinvention disclosed herein. As noted above, particular terminology usedwhen describing certain features or aspects of the invention should notbe taken to imply that the terminology is being redefined herein to berestricted to any specific characteristics, features, or aspects of theinvention with which that terminology is associated. In general, theterms used in the following claims should not be construed to limitaspects of the invention to the specific embodiments disclosed in thespecification, unless the above Detailed Description section explicitlydefines such terms. Accordingly, the actual scope of the inventionencompasses not only the disclosed embodiments, but also all equivalentways of practicing or implementing the invention.

While certain aspects of the invention are presented below in certainclaim forms, the inventors contemplate the various aspects of theinvention in any number of claim forms. For example, while only oneaspect of the invention is recited as embodied in a computer-readablemedium, other aspects may likewise be embodied in a computer-readablemedium. As another example, while only one aspect of the invention isrecited as a means-plus-function claim under 35 U.S.C. §112, sixthparagraph, other aspects may likewise be embodied as ameans-plus-function claim, or in other forms, such as being embodied ina computer-readable medium. (Any claim elements intended to be treatedunder 35 U.S.C. §112, ¶ 6 will begin with the words “means for.”) Meansfor storing can include various structural components (e.g.,computer-readable storage media) configured to store digital content.Means for conforming can also include various structural components. Forexample, the means for conforming could include a computer (e.g., aspecial purpose computer) programmed to perform an algorithm forconforming a preset to a schema or a data structure definition (e.g.,perform an algorithm similar to that described with reference to e.g.,FIG. 6). Means for modifying could also include a computer (e.g., aspecial purpose computer) programmed to perform an algorithm formodifying a preset to conform the preset to a schema or a data structuredefinition. Those of skill in the art will understand that means for mayinclude various structural components described herein. The inventorsreserve the right to add additional claims after filing the applicationto pursue additional claim forms for other aspects of the invention.

We claim:
 1. A method of processing video on a server using sharedeffects and associated presets, the method comprising: receiving, by aserver, from a professional user, one or more effects presets created bythe professional user, each effects preset having a form; converting, bythe server, at least one effects preset to a form usable by the server;receiving, by the server, from a consumer user, a search query foreffects; identifying, by the server, effects that satisfy the searchquery; providing, by the server, a list of the identified effects;receiving, by the server, from the consumer user, a request to use oneor more of the identified effects; in response to determining, by theserver, that the consumer user is not allowed to access the requestedone or more identified effects, denying the request; and in response todetermining, by the server, that the consumer user is allowed to accessthe requested one or more identified effects, receiving, by the server,from the consumer user, a video to which the requested one or moreeffects is to be applied, applying, by the server, to the video, effectspresets corresponding to the requested one or more effects to the videobased at least in part on the one or more modifications to create amodified video, and transferring, by the server, the modified video fordisplay or storage.
 2. The method of claim 1, wherein the effectsinclude at least one effect configured to process audio tracks of thevideo.
 3. The method of claim 1, further comprising: providing, by theserver, a video-editing capability, with a user interface displayed onthe consumer user's web browser or mobile app, wherein actual videoediting operations are performed on the server.
 4. The method of claim1, wherein the server is configured to provide a video hosting service.5. The method of claim 1, wherein the transferring comprisestransferring the modified video to the consumer user.
 6. The method ofclaim 1, wherein determining that the consumer user is allowed to accessthe requested one or more identified effects comprises determiningwhether the consumer user has paid to access the requested one or moreidentified effects, either by direct payment or by subscription.
 7. Themethod of claim 1, wherein the consumer user uses a web browser toconnect to the server.
 8. The method of claim 1, wherein the consumeruser uses an app on a mobile device to connect to the server.
 9. Themethod of claim 1, wherein the consumer user uses a desktop softwareapplication to connect to the server.
 10. The method of claim 1, whereinthe request to use one or more of the identified effects additionallycomprises one or more modifications to the requested one or moreeffects, each modification having one or more parameter values.
 11. Themethod of claim 1, wherein transferring the modified video comprisestransferring the modified video to a device of the consumer user. 12.The method of claim 1, wherein transferring the modified video comprisestransferring the modified video to a third-party server.
 13. The methodof claim 12 wherein the third party-server is comprises a videodistribution web site.
 14. The method of claim 1, wherein transferringthe modified video comprises transferring the modified video to a webbrowser for display to the consumer user.
 15. The method of claim 1,further comprising: receiving information describing a first effectspreset of the effects presets; and storing the information inassociation with the first effects preset, such that the information maybe viewed in association with the first effects preset.
 16. The methodof claim 1, further comprising: storing at least one effect in a datastore, wherein each effect is obtained by applying one or more of theeffects presets to at least a portion of a digital asset; receiving afirst digital asset; receiving a selection of an effect stored in thedata store; determining one or more effects presets corresponding to theselected effect; and applying the one or more effects presets to aportion of the first digital asset to obtain a modified digital asset.17. The method of claim 1 wherein the server comprises a storage devicestoring the effects presets created by the professional user and whereina computing system other than the server is configured to receive aneffects preset to be used by an application at the computing systemother than the server.
 18. The method of claim 1, further comprising:receiving a selection of an authored effects preset authored by a userto be added to a collection of effects presets; receiving metadata toassociate with the authored effects preset; and adding the authoredeffects preset and the received metadata to the collection of effectspresets.
 19. The method of claim 1, further comprising: receiving aselection of a first authored effects preset authored by a user to beadded to a collection of effects presets; adding the first authoredeffects preset to the collection of effects presets; receiving aselection of a second authored effects preset authored by the user or byanother user to be added to the collection of effects presets; andadding the second authored effects preset to the collection of multiplepresets, wherein the first and second authored effects presets areusable together and are grouped together in the collection of presets.20. The method of claim 1, wherein at least one effects preset conformsto a first schema and wherein the method further comprises: accessingthe at least one effects preset that conforms to the first schema, andconforming the at least one effects preset that conforms to the firstschema to a second schema that is different from the first schema.
 21. Ahosted system for processing video using shared effects and associatedpresets, the hosted system comprising: a processor; a componentconfigured to receive, from a professional user, one or more effectspresets created by the professional user, each effects preset having aform; a component configured to convert at least one effects preset to aform usable by the hosted system; a component configured to receive,from a consumer user, a search query for effects; a component configuredto identify effects that satisfy the search query; a componentconfigured to provide a list of the identified effects to a browser oran app; a component configured to receive, from the consumer user, arequest to use one or more of the identified effects; a componentconfigured to receive from the consumer user, a video to which therequested one or more of the identified effects is to be applied; acomponent configured to apply, to the video, effects presetscorresponding to the requested one or more of the identified effects,based at least in part on the one or more modifications, to create amodified video; and a component configured to transfer the modifiedvideo for display or storage.
 22. A computer-readable memory storagedevice storing content that, if executed by a computing system having aprocessor, cause the computing system to perform a method comprising:receiving, from a professional user, one or more effects presets createdby the professional user, each effects preset having a form; convertingat least one effects preset to a form usable by the computing system;receiving, from a consumer user, a search query for effects; identifyingeffects that satisfy the search query; providing a list of theidentified effects to a browser or an app; receiving from the consumeruser, a request to use one or more of the identified effects; receiving,from the consumer user, a video to which the requested one or more ofthe identified effects is to be applied; applying, to the video, effectspresets corresponding to the requested one or more of the identifiedeffects, based at least in part on the one or more modifications, tocreate a modified video; and transferring the modified video for displayor storage.
 23. A method, performed by a computing system having aprocessor, the method comprising receiving, by the computing system,from a professional user, one or more effects presets created by theprofessional user, each effects preset having a form; converting, by thecomputing system, at least one effects preset to a form usable by thecomputing system; receiving, by the computing system, from a consumeruser, a search query for effects; identifying, by the computing system,effects that satisfy the search query; providing, by the computingsystem, a list of the identified effects to a browser or an app;receiving, by the computing system, from the consumer user, a request touse one or more of the identified effects; receiving, by the computingsystem, from the consumer user, a video to which the requested one ormore of the identified effects is to be applied; applying, by thecomputing system, to the video, effects presets corresponding to therequested one or more of the identified effects, based at least in parton the one or more modifications, to create a modified video; andtransferring, by the computing system, the modified video for display orstorage.
 24. The method of claim 23, wherein the consumer user uses aweb browser to connect to the computing system.
 25. The method of claim23, wherein the consumer user uses an app on a mobile device to connectto the computing system.
 26. The method of claim 23, wherein theconsumer user uses a desktop software application to connect to thecomputing system.
 27. The method of claim 23, wherein transferring themodified video includes transferring the modified video to at least oneof a device of the consumer user, a third-party server, or a web browserof the consumer user.